// src/utils/formatter.ts
import   dayjs from 'dayjs'

/* ===== 字符串 ===== */
/** 下划线 → 小驼峰 */
export function toCamelCase(str: string): string {
  return str.replace(/_([a-z])/g, (_, c) => c.toUpperCase())
}

/** 小驼峰 → 下划线 */
export function toUnderline(str: string): string {
  return str.replace(/([A-Z])/g, '_$1').toLowerCase()
}

/** 首字母大写 */
export function capitalize(str: string): string {
  return str.charAt(0).toUpperCase() + str.slice(1)
}

/* ===== 日期 ===== */
/** 当天 Date 仅日期部分 */
export function todayDate(): string {
  return dayjs().format('YYYY-MM-DD')
}

/** 当天 Date 带时分秒 */
export function todayDateTime(): string {
  return dayjs().format('YYYY-MM-DD HH:mm:ss')
}

export function strDateTime(): string {
  return dayjs().format('YYYYMMDD_HHmmss')
}

/** 时间戳 → 字符串 */
export function tsToDate(ts: number | string, pattern = 'YYYY-MM-DD'): string {
  return dayjs(+ts).format(pattern)
}

/** 字符串 → Date 对象 */
export function strToDate(dateStr: string): Date {
  return dayjs(dateStr).toDate()
}

/* ===== 数字/金额 ===== */
/** 分 → 元 */
export function centToYuan(cent: number): string {
  return (cent / 100).toFixed(2)
}

/** 手机号脱敏 */
export function maskPhone(phone: string): string {
  return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
}